package platform;

import platform.cmdexecutor.LinuxPlatformCommandExecutor;
import platform.cmdexecutor.PlatformCommandExecutor;
import platform.hwinfofetcher.HardwareInfoFetcher;
import platform.hwinfofetcher.LinuxHardwareInfoFetcher;
import platform.upgrader.LinuxPlayerUpgrader;
import platform.upgrader.PlayerUpgrader;

public class LinuxPlatformObjectFactory extends PlatformObjectFactory {

	private static LinuxPlatformObjectFactory _instance;

	public static LinuxPlatformObjectFactory getInstance() {
		if (_instance == null) {
			_instance = new LinuxPlatformObjectFactory();
		}
		return _instance;
	}

	private LinuxPlatformObjectFactory() {
	}

	@Override
	public PlatformCommandExecutor getCommandExecutor() {
		return LinuxPlatformCommandExecutor.getInstance();
	}

	@Override
	public PlayerUpgrader getPlayerUpgrader() {
		return new LinuxPlayerUpgrader();
	}

	@Override
	public HardwareInfoFetcher getHardwareInfoFetcher() {
		return new LinuxHardwareInfoFetcher();
	}

}
